Various techniques are known in the art for storing data in memory according to the usage pattern of the data. For example, U.S. Patent Application Publication 2009/0049234, whose disclosure is incorporated herein by reference, describes a storage scheme that stores data in a solid state memory including first and second memory layers. A first assessment is executed to determine whether received data is hot data or cold data. Received data which is assessed as hot data is stored in the first memory layer, and received data which is assessed as cold data is stored in the second memory layer. Further, a second assessment is executed to determine whether the data stored in the first memory layer is hot data or cold data. Data which is then assessed as cold data during the second assessment is migrated from the first memory layer to the second memory layer.
As another example, U.S. Patent Application Publication 2011/0010489, whose disclosure is incorporated herein by reference, describes a logical block management method for managing a plurality of logical blocks of a Flash memory device. The method includes providing a Flash memory controller, and grouping the logical blocks into a plurality of logical zones, wherein each logical block maps to one of the logical zones. The method also includes counting a use count value for each logical block, and dynamically adjusting mapping relations between the logical blocks and the logical zones according to the use count values. Accordingly, the logical block management method can effectively utilizing the logical zones to determine usage patterns of the logical blocks and use different mechanisms to write data, so as to increase the performance of the Flash memory storage device.
Yet another example of managing hot and cold data is described by Hong and Shin, in “NAND Flash-based Disk Cache Using SLC/MLC Combined Flash Memory,” 2010 International Workshop on Storage Network Architecture and Parallel I/Os, May, 2010, which is incorporated herein by reference.